PROJ_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))
OBJ_DIR  := $(PROJ_DIR)/obj
SRC_DIR  := $(PROJ_DIR)/src
INC_DIR  := $(PROJ_DIR)/inc
BIN_DIR  := $(PROJ_DIR)/bin


CC   = g++ -fPIC
LINK = g++

STDVER   = -std=c++11
CFLAGS  += -g -D_FILE_OFFSET_BITS=64
CPPFLAGS = $(CFLAGS) $(STDVER)
LDFLAG   = -lhiredis -lpthread -levent -llog4c -lzookeeper_mt


OBJS = redis_subscriber.o global.o zkprofile.o logger.o com_iiot_stream_tools_JNIRedis.o
OBJECTS = $(patsubst %,$(OBJ_DIR)/%,$(OBJS))
LIB  = $(BIN_DIR)/libredisHashMap.so


INCLUDE_PATH = -I$(JAVA_HOME)/include -I$(INC_DIR)
LIB_PATH     = -L$(JAVA_HOME)/jre/lib/amd64 -L$(JAVA_HOME)/jre/lib/amd64/jli



all : premak $(LIB) 

premak::
	@set -e
	@ [ -d $(OBJ_DIR) ] || mkdir $(OBJ_DIR)
	@ [ -d $(BIN_DIR) ] || mkdir $(BIN_DIR)

$(OBJ_DIR)/%.o : $(SRC_DIR)/%.cpp
	$(CC) $(CPPFLAGS) $(INCLUDE_PATH) -c  -o $@ $<

$(LIB) : $(OBJECTS)
	$(LINK) $(LIB_PATH) $(LDFLAG) -shared -o $@ $^

tags :
	ctags -R *

clean:
	@rm -f $(OBJECTS) $(LIB)
